package com.example.yilanchatserver.business.freechat.service;

import org.springframework.stereotype.Service;

import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * @program: RoleService
 * @description:
 * @author: bob
 * @create: 3/24/21 5:33 PM
 */

@Service
public interface RedisService {

    /**
     * 存储数据
     */
    void set(String key, String value);

    /**
     * 获取数据
     */
    String get(String key);

    /**
     * 设置超期时间
     */
    boolean expire(String key, long expire);

    /**
     * 缓存基本的对象，Integer、String、实体类等
     *
     * @param key 缓存的键值
     * @param value 缓存的值
     */
    void set(String key, String value, int expire, TimeUnit timeUnit);

    /**
     * 删除数据
     */
    void remove(String key);

    /**
     * 自增操作
     * @param delta 自增步长
     */
    Long increment(String key, long delta);

    void rpush(String key, List<String> content);

    void rpush(String key, String content);

    List<String> range(String key);

    Boolean hasKey(String key);

    void rpop(String key);

    void deleteElement(String key, String value);
}
